Thực đơn
Dạng thức bắc cầu Ví dụChương trình Java sau minh hoạ ví dụ "shapes" đã nói ở trên và đưa ra kết quả:
API1.circle at 1.000000:2.000000 radius 7.500000API2.circle at 5.000000:7.000000 radius 27.500000
/** "Implementor" */interface DrawingAPI { public void drawCircle(double x, double y, double radius);}/** "ConcreteImplementor" 1/2 */class DrawingAPI1 implements DrawingAPI { public void drawCircle(double x, double y, double radius) { System.out.printf("API1.circle at %f:%f radius %f\n", x, y, radius); }}/** "ConcreteImplementor" 2/2 */class DrawingAPI2 implements DrawingAPI { public void drawCircle(double x, double y, double radius) { System.out.printf("API2.circle at %f:%f radius %f\n", x, y, radius); }}/** "Abstraction" */interface Shape { public void draw(); // low-level public void resizeByPercentage(double pct); // high-level}/** "Refined Abstraction" */class CircleShape implements Shape { private double x, y, radius; private DrawingAPI drawingAPI; public CircleShape(double x, double y, double radius, DrawingAPI drawingAPI) { this.x = x; this.y = y; this.radius = radius; this.drawingAPI = drawingAPI; } // low-level i.e. Implementation specific public void draw() { drawingAPI.drawCircle(x, y, radius); } // high-level i.e. Abstraction specific public void resizeByPercentage(double pct) { radius *= pct; }}/** "Client" */class BridgePattern { public static void main(String[] args) { Shape[] shapes = new Shape[2]; shapes[0] = new CircleShape(1, 2, 3, new DrawingAPI1()); shapes[1] = new CircleShape(5, 7, 11, new DrawingAPI2()); for (Shape shape: shapes) { shape.resizeByPercentage(2.5); shape.draw(); } }}
|
Thực đơn
Dạng thức bắc cầu Ví dụLiên quan
Dạng thức (điện thoại di động) Dạng thuốc Dạng Mẫn Hoàng hậu Dạng thức thiết kế Dạng chuẩn 3 Dạng hàng bậc thang Dạng chuẩn 1 Dạng toàn phương Dạng chuẩn 2 Dạng thức (thiết kế)Tài liệu tham khảo
WikiPedia: Dạng thức bắc cầu